package cn.example.jdk;

/**
 * @author July
 * @description jdk新版本新特性
 * @create 2025-09-08 19:07
 */
public class NewFeature {

    public static void main(String[] args) {

        // jdk10 本地变量类型判断
        var value = "";

        // 之前 switch
        String x = "3";
        int i;
        switch (x) {
            case "1":
                i = 1;
                break;
            case "2":
                i = 2;
                break;
            default:
                i = x.length();
                break;
        }
        // jdk12 引入Switch表达式作为预览特性，并在jdk13中修改这个特性，引入了yield语句，用于返回值
        // jdk14 中这一功能正式作为标准功能提供出来
        // jdk13中写法
        i = switch (x) {
            case "1" -> 1;
            case "2" -> 2;
            default -> {
                int len = args[1].length();
                yield len;
            }
        };
        // yield和return的区别：return会直接跳出当前循环或者方法，而yield只会跳出当前switch块
        i = switch (x) {
            case "1": yield 1;
            case "2": yield 2;
            default: {
                int len = args[1].length();
                yield len;
            }
        };

        // Text Blocks  jdk13中提供出来预览特性，jdk14中提供了第二个版本的预览
        // text block，文本块，是一个多行字符串文字，它避免了对大多数转义序列的需要，以可预测的方式自动格式化字符串，
        // 并在需要时让开发人员控制格式
        String sql = """
                SELETE * FROM user 
                WHERE sex = 'man';
                """;

        // Records
        //
    }
}
